package cn.yhbk.web.modules.manager.Service;

import cn.yhbk.web.common.api.CommonPage;
import cn.yhbk.web.modules.manager.Pojo.DTO.Detail.RefuseReason;
import cn.yhbk.web.modules.manager.Pojo.DTO.GpaCheck.GpaCheckConditionDTO;
import cn.yhbk.web.modules.manager.Pojo.DTO.GpaCheck.Words;
import cn.yhbk.web.modules.manager.Pojo.Entity.TbGpaCheck;
import cn.yhbk.web.modules.manager.Pojo.VO.GpaCheck.CheckOperateDetail;
import cn.yhbk.web.modules.manager.Pojo.VO.GpaCheck.GpaCheckAdd;
import cn.yhbk.web.modules.manager.Pojo.VO.GpaCheck.GpaCheckResP;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 有何不可
 * @since 2023-08-20
 */
public interface ITbGpaCheckService extends IService<TbGpaCheck> {

    boolean addCheck(GpaCheckAdd add);

    CommonPage<GpaCheckResP> getCheck(Long currentPage, Long pageSize, GpaCheckConditionDTO conditionDTO);

    /**
     * 判断状态是否符合当前角色order
     */
    boolean judgeCheckStatus(Long checkId);

    /**
     * 通过
     */
    boolean consent(Long checkId);

    /**
     *
     * 拒绝
     */
    boolean turnDown(Long checkId, List<CheckOperateDetail> details);

    boolean judgeCheckStu(Long checkId);

    /**
     * 删除
     */
    boolean delCheck(Long checkId);

    /**
     * 判断是否有正在审核的申请记录
     */
    boolean haveChecking();

    List<Long> getCheckIdsByStuId(Long stuId);

    GpaCheckAdd getGpgByImg(List<Words> wordsList);
}
